import os
import logging.config
from .base import BaseLogger
from config.logger import logger_config


def setup_logging_system(app):
  """
  配置和初始化Flask应用的日志系统

  Args:
      app: Flask应用实例

  Returns:
      BaseLogger: 应用日志器实例
  """
  # 获取日志配置
  config = logger_config

  # 确保日志目录存在
  log_dirs = set()
  for handler in config.get('handlers', {}).values():
    if 'filename' in handler:
      log_dir = os.path.dirname(handler['filename'])
      if log_dir:
        log_dirs.add(log_dir)

  for log_dir in log_dirs:
    if not os.path.exists(log_dir):
      os.makedirs(log_dir)
      print(f"创建日志目录: {log_dir}")

  # 应用日志配置
  logging.config.dictConfig(config)
  print("已应用日志配置")

  # 在Flask上下文中创建并配置应用日志器
  with app.app_context():
    app_log = BaseLogger()
    app.log = app_log

  return app_log
